# coding: UTF-8
# @Date    ：2024/10/15 16:09 
# @File    : config_model.py
# :Author:  fum

import datetime

from sqlalchemy import Column, Integer, String, DateTime

from api.fm.models.base import Base


# 2. 定义 User 模型类
class User(Base):
    __tablename__ = 'users'  # 定义表名

    # 定义表的字段
    id = Column(Integer, primary_key=True, autoincrement=True)  # 用户ID，主键，自增长
    username = Column(String(50), unique=False, nullable=True)  # 用户名，唯一，不能为空
    email = Column(String(100), unique=False, nullable=True)  # 邮箱，唯一，不能为空
    password = Column(String(100), nullable=True)  # 密码，不能为空
    created_at = Column(DateTime, default=datetime.datetime.utcnow)  # 创建时间，默认为当前时间

    @property
    def serialize(self):
        return {
            'id': self.id,
            'username': self.username,
            'email': self.email,
            'created_at': self.created_at.isoformat()
        }

    def __repr__(self):
        return f"<User(id={self.id}, username={self.username}, email={self.email})>"
